package com.gimi.cloud.jimi.common.utils;


import com.gimi.cloud.jimi.common.enums.ResponseCodeEnum;
import com.gimi.cloud.jimi.common.exception.MsgException;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Validates {
	/**
	 * 判断传入值是否为空，true代表空
	 *2014年9月30日 下午4:54:19
	 *arthur
	 *@param obj
	 *@return
	 */
	public static boolean isBlank(Object obj) {
		boolean blankOrNot = false;
		if(obj == null) {
			blankOrNot = true;
		} else if(obj instanceof String) {
			String objStr = (String)obj;
			if("".equals(objStr)) {
				blankOrNot = true;
			}
		}
		return blankOrNot;
	}

	/**
	 * 校验是否为手机号
	 */
	public static boolean isPhone(String phone) {
		String phoneFormat = "^((13[\\d])|(15[0-35-9])|(18[\\d])|(147)|(17[678]))\\d{8}$";
		Pattern p = Pattern.compile(phoneFormat);
		Matcher m = p.matcher(phone);
		return m.matches();
	}

	/**
	 * 校验是否为邮箱
	 */
	public static boolean isEmail(String email) {
		Pattern regex = Pattern
				.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
		Matcher matcher = regex.matcher(StringUtil.isNull(email));
		return matcher.matches();
	}

	/**
	 * 判断一个集合中是否有重复
	 * 没有重复是true，有重复是false
	 * @param list
	 * @return
	 */
	public static boolean hasSame(List<? extends Object> list)
	{
		if(null == list)
			return false;
		return list.size() == new HashSet<Object>(list).size();
	}


	/**
	 * 判断数字长度
	 * @param requestBody
	 */
	public static void checkNumLength(String requestBody){
		Map<String,String> map=JsonUtil.jsonToMap(requestBody);
		String positionNum = map.get("positionNum");
		String pageId = map.get("pageId");
		if(positionNum.length() > 9){
			throw new MsgException(ResponseCodeEnum.PARAMETER_ERROR,"位置序列填写数字，且不能超过9位");
		}
		if(pageId.length() > 9){
			throw new MsgException(ResponseCodeEnum.PARAMETER_ERROR,"页面编号填写数字，且不能超过9位");
		}
	}
}

